public class CmdPrinter {

    //定义一个成员属性为20*20大小的char字符型二维数组作为Person对象的移动模拟空间
    char matrix[][]=new char[30][30];

    //自定义构造方法，初始化生存空间模拟二维数组每个元素为'O'
    public CmdPrinter(){
        for(int i=0;i<30;i++){
            for(int j=0;j<30;j++){
                matrix[i][j]='O';
            }
        }
    }

    //定义print()方法打印每一个Person对象在模拟空间中的位置，建议用∎符号代表该坐标有人，O符号代表该坐标没有人
    //注意print方法的参数为Person类型的数组
    void print(Person people[]){

        System.out.println("start the print:");

        //每次调用print方法时必须先将矩阵进行初始化
        for(int i=0;i<30;i++){
            for(int j=0;j<30;j++){
                matrix[i][j]='O';
            }
        }

        //遍历people数组，1、将其中每个元素对象的坐标值取出，在矩阵中做标记
        //2、调用该对象的action方法，以模拟下次打印people坐标时人口的随机移动
        for(int i=0;i<people.length;i++){
            matrix[people[i].x][people[i].y]='∎';
            people[i].action();
        }

        //最后遍历二维数组matrix，将其中所有元素打印出来（其中有人的坐标位置已在上一步中标记出来）
        for(int i=0;i<30;i++){
            for(int j=0;j<30;j++){
                System.out.print(matrix[i][j]+" ");
            }
            System.out.println();
        }


    }


}
